package pl.un4giv3n.mightvsmagic.utils.display;

import org.displaytag.decorator.TableDecorator;

import pl.un4giv3n.mightvsmagic.entity.Clan;
import pl.un4giv3n.mightvsmagic.utils.ClanStats;
import pl.un4giv3n.mightvsmagic.utils.ClanStatsUtil;

public class DisplayClanRankDecorator extends TableDecorator {

	public long getIndex() {
		int numItemsPerPage = 100;
		int page = 0;
		try {
			page = Integer.parseInt(getPageContext().getRequest().getParameter(
					"page"));
		} catch (NumberFormatException e) {
			// do nothing
		}
		int index = getListIndex();
		int currPage = page > 0 ? page - 1 : page;
		return (currPage * numItemsPerPage) + index + 1;
	}

	public long getMemberCount() {
		ClanStats clanStats = getCLanStats();
		return clanStats.getMemberCount();
	}
	public long getFightsWon() {
		ClanStats clanStats = getCLanStats();
		return clanStats.getFightsWon();
	}

	public long getFightsLost() {
		ClanStats clanStats = getCLanStats();
		return clanStats.getFightsLost();
	}

	public double getGoldLost() {
		ClanStats clanStats = getCLanStats();
		return clanStats.getGoldLost();
	}

	public double getGoldWon() {
		ClanStats clanStats = getCLanStats();
		return clanStats.getGoldWon();
	}

	public long getWarsWon() {
		ClanStats clanStats = getCLanStats();
		return clanStats.getWarsWon();
	}

	public long getWarsLost() {
		ClanStats clanStats = getCLanStats();
		return clanStats.getWarsLost();
	}

	private ClanStats getCLanStats() {
		Clan clan = (Clan) getCurrentRowObject();
		ClanStats clanStats = ClanStatsUtil.getCachedStats().get(clan.getId());
		return clanStats;
	}
}
